package com.hjj.beans;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 类加载(类实例化 cinit)
 * 1、执行静态变量初始化(赋值)
 * 1.1、static int AA = 1000; 初始化分为两个步骤：1、(先赋值零值)AA=0； 2、AA=1000；
 * 1.2、final static int BB = 100; 初始化只有一个步骤：1、(直接赋值)BB = 1000;
 * 2、执行静态代码段【执行时机，触发类的static int修饰的常量，或者任意对象方法或属性】【final static修饰的常量不能触发】
 * 3、在使用到该类的时候，会在方法区(元空间)创建一个该类的C语言实例进行记录类的信息(类名、类的成员变量、类的注解等一些与类相关的信息，也就是class字节码信息)
 *
 * 如果想要得到类的信息，必须获取该类的Class对象，而获取类的Class对象，
 * 1、必须调用Stu.class或者调用Stu.getClass()方法
 * 2、使用Class.forName()方法
 */

public class Stu {
    public static int AA = 1000;

    public final static int BB = 2000;

    static {
        System.out.println("ok");
    }

    private void fun1(){
        System.out.println("fun1..............");
    }

    private int fun2(int a, int b){
        return a + b;
    }

    private int id;
    private String name;

    public Stu() {

    }

    public Stu(int id, String name) {
        this.id = id;
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
